#ifndef TEMPERATURE_H
#define TEMPERATURE_H

#include "../lvgl/lvgl.h"
#include <pthread.h>  // 引入 pthread 头文件

// 温度阈值定义
#define TEMP_NORMAL_LOW     18.0f   // 正常温度下限
#define TEMP_NORMAL_HIGH    27.0f   // 正常温度上限
#define TEMP_LOW_HIGH       17.9f   // 低温上限
#define TEMP_HIGH_LOW       27.1f   // 高温下限
#define TEMP_HIGH_HIGH      34.9f   // 高温上限
#define TEMP_ALARM          35.0f   // 报警温度阈值

// ADC值范围定义
#define ADC_MIN_VALUE       11       // ADC最小值
#define ADC_MAX_VALUE       1023    // ADC最大值（12位ADC）

// 外部变量声明 - 供其他文件访问
extern pthread_mutex_t control_mutex;       // 控制互斥锁
extern int manual_led_override;             // LED手动控制标记
extern float current_temperature;           // 当前温度
extern lv_obj_t *ui_ledSwitch;              // LED开关UI对象

// 函数声明
int adc_display_init(void);
void adc_display_start(void);
void adc_display_stop(void);
void adc_display_cleanup(void);
float get_current_temperature(void);
void manual_led_control(int state);
void manual_beep_control(int state);
void ui_ledSwitch_event_handler(lv_obj_t *obj, lv_event_t *event);
void ui_beepSwitch_event_handler(lv_obj_t *obj, lv_event_t *event);
int temperature_module_is_initialized(void);  // 状态检查函数
void set_switch_state(lv_obj_t *sw, int state);  // 添加开关状态设置函数声明

#endif // TEMPERATURE_H
    